/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.invoice.busines.dto;

import com.invoice.enums.Estado;
import com.invoice.enums.TipoComprobante;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Lidia
 */
public class ComprobanteDTO  implements java.io.Serializable{
    private Integer idComprobante;
    private String numComp;
    private String numGuia;
    private TipoComprobante tipoComprobante;
    private Date fecha = new Date();
    private ClienteDTO clienteDTO;
    private VendedorDTO vendedorDTO;
    private BigDecimal descuento;
    private BigDecimal subTotal;
    private BigDecimal totIva;
    private BigDecimal total;
    private String observac;
    private Estado estado = Estado.Procedio;
    private List<ComprobanteDetalleDTO> comprobantedetalles;
    private List<ComprobanteCampoDTO> comprobanteCampoDTOs;
    public Integer getIdComprobante(){
        return idComprobante;
    }
    public void setIdComprobante(Integer idComprobante){
        this.idComprobante = idComprobante;
    }

    public String getNumComp() {
        return numComp;
    }

    public void setNumComp(String numComp) {
        this.numComp = numComp;
    }

    public String getNumGuia() {
        return numGuia;
    }

    public void setNumGuia(String numGuia) {
        this.numGuia = numGuia;
    }

    public TipoComprobante getTipoComprobante() {
        return tipoComprobante;
    }

    public void setTipoComprobante(TipoComprobante tipoComprobante) {
        this.tipoComprobante = tipoComprobante;
    }
    
    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public ClienteDTO getClienteDTO() {
        return clienteDTO;
    }

    public void setClienteDTO(ClienteDTO clienteDTO) {
        this.clienteDTO = clienteDTO;
    }

    public VendedorDTO getVendedorDTO() {
        return vendedorDTO;
    }

    public void setVendedorDTO(VendedorDTO vendedorDTO) {
        this.vendedorDTO = vendedorDTO;
    }

    public BigDecimal getDescuento() {
        return descuento;
    }

    public void setDescuento(BigDecimal descuento) {
        this.descuento = descuento;
    }

    public BigDecimal getSubTotal() {
        return subTotal;
    }

    public void setSubTotal(BigDecimal subTotal) {
        this.subTotal = subTotal;
    }

    public BigDecimal getTotIva() {
        return totIva;
    }

    public void setTotIva(BigDecimal totIva) {
        this.totIva = totIva;
    }

    public String getObservac() {
        return observac;
    }

    public void setObservac(String observac) {
        this.observac = observac;
    }

    public Estado getEstado() {
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
    }

    public BigDecimal getTotal() {
        return total;
    }

    public void setTotal(BigDecimal total) {
        this.total = total;
    }
    
    public List<ComprobanteDetalleDTO> getComprobantedetalles() {
        return comprobantedetalles;
    }

    public void setComprobantedetalles(List<ComprobanteDetalleDTO> comprobantedetalles) {
        this.comprobantedetalles = comprobantedetalles;
    }
    public void addComprobantedetalle(ComprobanteDetalleDTO comprobanteDetalleDTO){
        if (this.comprobantedetalles == null){
           this.comprobantedetalles = new ArrayList<ComprobanteDetalleDTO>();
        }
        comprobanteDetalleDTO.setComprobanteDTO(this);
        this.comprobantedetalles.add(comprobanteDetalleDTO);
    }
    public void removeComprobanteDetalleDTO(ComprobanteDetalleDTO comprobanteDetalleDTO){
        for (ComprobanteDetalleDTO detalle : comprobantedetalles) {
            if(detalle.getArticuloDTO().getCode().equals(comprobanteDetalleDTO.getArticuloDTO().getCode())){
                comprobantedetalles.remove(detalle);
                break;
            }
        }
    }

    public List<ComprobanteCampoDTO> getComprobanteCampoDTOs() {
        return comprobanteCampoDTOs;
    }

    public void setComprobanteCampoDTOs(List<ComprobanteCampoDTO> comprobanteCampoDTOs) {
        this.comprobanteCampoDTOs = comprobanteCampoDTOs;
    }
    
    public void addComprobanteCampoDTO(ComprobanteCampoDTO comprobanteCampoDTO) {
        if(this.comprobanteCampoDTOs == null){
            this.comprobanteCampoDTOs = new ArrayList<ComprobanteCampoDTO>();
        }
        comprobanteCampoDTO.setComprobanteDTO(this);
        this.comprobanteCampoDTOs.add(comprobanteCampoDTO);
    }
    
}
